In a variety of different contexts, it is frequently necessary to discover classes and topics that data contains and to annotate data objects with those identified classes. For example, such annotation is useful for customer feedback forms, call center problem tickets and agent-customer conversational transcripts.
In the field of machine learning, there exist supervised and unsupervised techniques. However, supervised techniques require trained data and assume that the trained data is accurate; and, with unsupervised techniques, it is difficult to determine how to interpret clusters that are generated by such techniques.